import {Module} from 'vuex'
import Request from '@/request';
// import {userInfoState} from '../types'
const version: Module<Record<string,any>,null> = {
    namespaced:true,
    state:{
        downloadTask: '',
        device: '', //设备环境
        progress: {}, //下载进度
    },
    actions:{
        updateApp({
        	commit,
        	state
        }) {
        	// is_force在点击事件的时候传,0或1，分辨是否弹出提示信息
        	// let the_date = new Date().toDateString();//利用时间戳更新缓存，看实际项目需要
        	// console.log('时间',the_date)
        	return new Promise((resolve,reject)=>{
        		let device = uni.getSystemInfoSync().platform; //判断设备
        		let json_path = '';
        		let url = '';
        		if (device.toLowerCase() == 'android') {
        			// console.log('安卓？')
        			json_path = 'android'
        			url = 'basedata.app_version'
        		} else {
        			// console.log('ios?')
        			json_path = 'ios'
        			url = 'basedata.app_version'
        			// return;//如果不需要上ios
        		}
        		state.device = json_path;
        		
        		plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
        			Request(url)
        			.then((result)=>{
        				// console.log("plus.runtime.getProperty===",result);
        				// console.log("plus.runtime.getProperty plus.runtime.appid===",parseInt(widgetInfo.version.split('.').join('')));
						// 李振
						// "android_update_num": "1",
						// "android_update_version": "1.0.1",
						// "android_download_url": "http://baidu.com",
						// "android_update_force": "0",
						// "android_update_title": "界是你没有挽过的船新版本",
						// "android_update_info": "我是一条描述",
						// "ios_update_num": "1",
						// "ios_update_version": "1.0.1",
						// "ios_download_url": "http://apple.com",
						// "ios_update_force": "1",
						// "ios_update_title": "新的版本",
						// "ios_update_info": "界是你没有挽过的船新版本"
        				var data = result.data;
        				let cur_v = 1;
        				let pass_v = 0;
        				let reqVersion = 1;  //请求所得信息
        				let reqUrl = '';
        				let apk_name = '';
        				let apk_desc = '';
        				let is_force = '';  //是否强制更新 1是 0否
        				
        				if(json_path === 'android'){
        					reqVersion = data.android_update_version;  //请求所得信息
        					reqUrl = data.android_download_url;
							
							apk_name = data.android_update_title;
							apk_desc = data.android_update_info;
							is_force = data.android_update_force;  //是否强制更新 1是 0否
        				}else{
        					reqVersion = data.ios_update_version;  //请求所得信息
        					reqUrl = data.ios_download_url;
        					
        					apk_name = data.ios_update_title;
        					apk_desc = data.ios_update_info;
        					is_force = data.ios_update_force;  //是否强制更新 1是 0否
        				}
        				
        				try {
        					cur_v = parseInt(reqVersion.split('.').join('')); //转换为number类型进行比较,后台返回的最新版本号1.0.0--》100
        					if (isNaN(cur_v)) {
        						cur_v = 1;
        					}
        					pass_v = parseInt(widgetInfo.version.split('.').join('')); //app本地版本号  1.0.0--》100
        					if (isNaN(pass_v)) {
        						pass_v = 0;
        					}
        				} catch (e) {}
        				// console.log("===",cur_v,reqVersion)
        				// console.log("===",pass_v,widgetInfo.version)
        				// console.log("===",pass_v,is_force,apk_name,apk_desc)
        				resolve({cur_v,pass_v,reqUrl,is_force,apk_name,apk_desc})
        				// if (cur_v > pass_v) {
        				// 	uni.showModal({
        				// 		title: '更新提示',
        				// 		content: data.msg || '检测到有数据包更新，是否进行更新？', //可后台配置更新文字返回显示：data.msg
        				// 		confirmText: '立即进行',
        				// 		confirmColor: '#B6FF37',
        				// 		cancelColor:'#333333',
        				// 		success: function(res) {
        				// 			if (res.confirm) {
        				// 				commit('downloadAPP', reqUrl)
        				// 			} else if (res.cancel) {}
        				// 		}
        				// 	});
        				// } else {
        				// 	if (is_force) {
        				// 		uni.showToast({
        				// 			title: '当前已是最新版本',
        				// 			icon: 'none'
        				// 		})
        				// 	}
        				// }
        			})
        			.catch(e => {
        				console.error(e);
        				// if (e) {
        				// 	uni.showToast({
        				// 		title: '更新失败,请联系客服!',
        				// 		icon: 'none',
        				// 	})
        				// }
        				reject(e)
        			});
        		});
        	})
        },
    },
    mutations:{
		downloadAPP(state, wgtUrl) {
			// var wgtUrl = data.android_link;
			//判断安卓ios，判断是否第一次更包，整包更新还是资源包更新,只做ios?安卓也可以，统一一个方法，如果要做安卓，在这里做判断条件即可
			// var wgtUrl = 'http://godee.cdn.dtbctech.com/_UNI_6FC15A3.wgt'
			// if (state.device == 'ios') {
			// 	// console.log('ios')
			// 	// if (!wgtUrl) {
			// 		wgtUrl = data.ios_link;
			// 	// }
			// }
			plus.nativeUI.showWaiting("下载更新文件...");
			state.downloadTask = uni.downloadFile({
				url: wgtUrl,
				success: (res) => {
					if (res.statusCode === 200) {
						this.commit('version/installWgt', res.tempFilePath); //安装wgt包
					}
				},
				fail: (res) => {
					plus.nativeUI.alert("下载失败！");
				}
			});
			state.downloadTask.onProgressUpdate((res) => {
				if (state.progress.progress < res.progress) {
					state.progress = res
				}
			});
		},
		installWgt(state, path) {
			plus.nativeUI.showWaiting("安装更新文件,请耐心等待...");
			plus.runtime.install(path, {}, function() {
				plus.nativeUI.closeWaiting();
				plus.nativeUI.alert("应用资源更新完成！", function() {
					plus.runtime.restart();
				});
			}, function(e) {
				plus.nativeUI.closeWaiting();
				plus.nativeUI.alert("安装更新文件失败[" + e.code + "]：" + e.message);
				if (e.code == 10) {
					alert('请清除临时目录');
				}
			});
		},
	}
}
export default version;
